首先明确的是 这次试验我要实现的效果是什么:利用magenta官方提供的用例和训练模型,把我手头的一张照片重绘成 莫奈或者其他艺术家作品的风格。(说的low一点就是:加个滤镜,但原理完全不一样)
这边的绘图是通过机器深度学习实现的,所谓深度学习(Deep Learning)中的 “深度(Deep)” 即意为层数。神经网络的每一层都会对图片特征进行提取,而 “艺术风格” 则是各层提取结果的叠加。
当然,要玩这个东西,首先要是去官网了解详情嘛,magenta github 在github的目录下可以发现它是tensorFlow下的一个项目,根据github上 readme提供的说明,就可以开工搭magenta环境啦。
我这边采用的是 docker 安装方案
docker run -it -p 6006:6006 -v /tmp/magenta:/magenta-data tensorflow/magenta
你本地没有该镜像,所以会网上自动下整个搭载好magenta运行所需要环境的一个系统。
bazel test //magenta/...
可以运行下上面的脚本,所有测试用例通过,确保环境没有问题。好了,环境搞好了,现在开始运行脚本了。
会发现下面的文档变成了style transfer,主要分两块内容training model 和 styling an image,初次尝试,可以跳过training model,在styleing an image中可以下载官网提供的 pre-trained model 。
调用执行
image_stylization_transform \
--num_styles=32 \
--checkpoint=multistyle-pastiche-generator-varied.ckpt \
--input_image=evaluation_images/kk7.jpg \
--which_styles=[0,8,16,19,22] \
--output_dir=/tmp/image_stylization/output \
--output_basename="kk7_styles"
num_styles规定了这个 pre-trained model 提供的绘画风格数量 ,checkpoint是官网下载的 pre-trained model文件,input_image为你自己的原图片,which_styles规定需要产出的 风格索引,两个output就是产出的文件夹和文件名称。
整个过程就这样了,比较简洁,不过有些在使用过程中的tips记一下:
docker 使用过程中一些简单的命令
输入的图片 ,尺寸不能过大,一般压缩到100k内才能比较顺利执行。一次性导出不能过多,过多就会提示 killed。